package com.hongtech.modules.system.service;

import com.hongtech.common.service.CrudService;
import com.hongtech.modules.system.dto.SysMenuDTO;
import java.util.List;

import com.hongtech.modules.system.entity.SysMenuEntity;
import com.hongtech.modules.system.vo.TreeMenuVO;
import com.hongtech.modules.system.vo.TreeMenuAccessVO;

/**
 * SysMenu 表数据服务层接口
 */
public interface SysMenuService extends CrudService<SysMenuEntity, SysMenuDTO> {

    /**
     * 获取指定用户拥有的菜单
     */
    List<String> listMenuIdsByUserId(Long uid);

    /**
     * 获取指定用户的菜单
     *
     * @param menuIds 当前用户所在角色拥有的权限ID集合
     * @param pid     菜单父ID
     */
    List<TreeMenuVO> listTreeMenuByMenuIdsAndPid(List<Long> menuIds, Long pid);

    /**
     * 获取当前用户的菜单
     */
    List<TreeMenuVO> listTreeMenuByUserId(Long uid);

    /**
     * 获取指定用户拥有权限
     *
     * @param menuIds 该角色拥有的权限ID集合
     * @param pid     菜单父ID
     */
    List<TreeMenuAccessVO> listMenuByMenuIds(List<Long> menuIds, Long pid);

}
